#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>

int main()
{
    printf("父进程(%d)开始执行 \n", getpid());
    
    // 创建分进程
    pid_t pid = fork();
    if (pid==0) // 子进程
    {
        printf("子进程(%d)开始执行\n", getpid());

        // 在子进程中通过execve来运行另一个程序
        // 注意： execve并不会创建新进程，是直接在当前进程上执行的
        char *argv[] = {"/home/zxf/桌面/workspace/linux_app/3_Process/other", NULL};
        char *envp[] = {NULL}; // PATH用系统默认的
        int result = execve(argv[0], argv, envp);
        if (result == -1)
        {
            perror("execve执行失败");
        }
    }
    else // 父进程
    {
        printf("父进程(%d)又开始执行\n", getpid());
    }


    return 0;
}
